It is frequently desired to run multiple applications on a single computer. In running a multiple application environment, it is desirable to limit the processor and RAM usage as much as possible. This goal is especially important in a networked environment where a plurality of computers may be running the same applications or may be similarly configured. The overall speed of computers in a network is related to the CPU and the RAM utilization of the individual computers in the network. Therefore it is desirable to be able to offload applications from computers with a higher CPU and RAM utilization to computers with a lower CPU and RAM utilization.
Present systems allow control of a remote machine by a local machine and sharing of resources between the local machine and the remote machine. For example IBM Tivoli Remote Control permits control of a remote machine. Symantec PC Anywhere permits a user to connect to other computers or servers in order to transfer files or run applications. Win2VNC allows the operator to use two screens on two different computers as if they were connected to the same computer but does not permit transfer of files. Virtual Network Computing (VNC) is a remote display system which allows a user to view a computing desktop running on a first machine on any other machine connected to the first machine by the Internet. Virtual Machine (VM) software takes a portion of a hard disk, a portion of a CPU and a portion of the RAM associated with the CPU from a first machine to create a second virtual machine. VM software assigns CPU as needed among virtual machines. VM software allows the machine to be preset so that different operating systems can be run in the VM environment. However, VM software does not allow offloading and sharing of CPU and RAM resources. Tivoli Enterprise Management has Tivoli Inventory, an inventory scan software program that can identify applications available within the systems it can scan.
Several patents address the architecture of virtual networks. See, for example, U.S. Pat. Nos. 6,205,147, 6,112,085, 6,111,876, and 5,586,862. However what is need beyond the prior art is a method and apparatus for resource sharing in a virtual network.
A need exists to reduce over utilization of the CPU processing capability and the Random Access Memory (RAM) of a computer in a virtual network or in a network of physically connected machines. Specifically, a need exists to maximize CPU processing power and RAM utilization on local computers and remote computers. A need exists to increase CPU and RAM performance through selective offloading (distribution) of processes. A need exists to permit dedication to critical processes of CPU and RAM utilization on a local machine. A need exists to share resources with a remote machine (CPU process and RAM). A need exists for CPU utilization sharing as add-on functionality to existing tools such as Tivoli Remote Control software, PC Anywhere software, Virtual Network Computing software and Virtual Machine software.